//
//  VSImageUtil.h
//  
//
//  Created by easelin on 13-11-21.
//  Copyright (c) 2013年 commsupport. All rights reserved.
//

#ifndef VS_IMAGE_UTIL
#define VS_IMAGE_UTIL

#import <Foundation/Foundation.h>
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#endif

CF_EXTERN_C_BEGIN

typedef NS_ENUM(char, VSImageDrawFrameOption) {
    VSImageDrawFrameOptionLocateSubFrame = 0,/**<  以新的边框绘制出图片局部，确保不变形，确保不压缩，不确保新的边框能被填满 */
    VSImageDrawFrameOptionLocateCenter,/**<  在新的边框填充图片，确保图片居中，确保不变形，确保不压缩，不确保新的边框能被填满 */
    VSImageDrawFrameOptionScaleToFillWidth,/**<  在新的边框填充图片，确保不变形，不确保不压缩，确保能够填满宽度（非高度） */
    VSImageDrawFrameOptionScaleToFillHeight,/**<  在新的边框填充图片，确保不变形，不确保不压缩，确保能够填满高度（非宽度） */
    VSImageDrawFrameOptionScaleToFillCircle,/**<  用圆形(圆形大小依赖于rect.size)填充图片，确保不变形，不确保不压缩，确保能够填满全部 */
    VSImageDrawFrameOptionFillFull,/**<  在新的边框填充图片，不确保不变形，不确保不压缩，确保能够填满全部 */
};

// # spec arg CGSize is response to screen size, no pixel!!!, the CGRect.origin origin is same as UIKit
    
/**
 重新画一个新尺寸大小的image
 @param[in] image，原始图片数据
 @param[in] scale 高清/标清
 @param[in] rect，新尺寸大小，该尺寸应该为point，非px！
 @param[in] cornerRadius，圆角大小
 @param[in] frameOption，填充选择
 @return 新的image
 */
CF_EXPORT CGImageRef VSImageCreateImageOnRect(CGImageRef image, CGFloat scale, CGRect rect, CGFloat cornerRadius, VSImageDrawFrameOption frameOption);


#if TARGET_OS_IPHONE

CF_EXPORT UIImage * VSImageGenerateImageOnRect(UIImage *image, CGRect rect, CGFloat cornerRadius, VSImageDrawFrameOption frameOption);

/**
 重新画一个竖直方向的image
 @param[in] image，原始图片数据
 @return 新的image
 */
CF_EXPORT UIImage * VSImageGenerateImageByFixOrientation(UIImage *image);

#endif

    
CF_EXTERN_C_END

#endif

